import java.util.HashMap;

public class code2 {
//    力扣 150 两数之和
public int[] twoSum(int[] nums, int target) {
    // 解法一：使用 哈希表 来存储对应的 key Value 值解决

    // 首先创建出一个 哈希表 key 的值存储数组元素 Value 存储 当前值的下标
    HashMap<Integer, Integer> map = new HashMap<>();
    for(int i = 0; i < nums.length; i++) {
        // 首先先进行判断
        // 如果出现 target - nums[i] 的值在 hash 表中，此时返回 i 以及 target - nums[i] = s 中 s 对应的下标
        if(map.containsKey(target - nums[i])) {
            return new int[]{map.get(target - nums[i]), i};
        }
        // 让元素和 下标 添加进来
        map.put(nums[i], i);
    }
    // 当循环完成后，没有合适的解，此时直接返回一个 空 数组
    return new int[0];
}
}
